/*
 * SystemException.java
 * 作者：杨成科
 * 2012-9-22 创建文件
 */
package com.iccboy.demo.basic.exception;

/**
 **************************************************
 * 自定系统异常 
 *                                 
 * @version 0.0.1    
 * @author  Ckyang                                                                 
 *************************************************
 */
public class SystemException extends ServiceException{
	   
	private static final long serialVersionUID = 1L;
	
	/**
	 * 错误信息，可在直接在抛出异常时直接定义异常信息或是定义异常编码
	 */
	private String message;
	
	/**
	 * 错误信息{}中的参数
	 */
	private Object[] params;
	
	/**
	 * @param message：异常信息，可以是具体的信息，也可以是对应的异常编码根据系统架构需要，如果是直接在异常抛出
	 * 时指定异常信息，则直接传入异常信息，如果需要根据资源文件中的KEY来确定异常信息，则直接传入异常编码	
	 */
	
	public SystemException(String message) {
		this( message, null,null);
	}
	
	/**
	 * @param message：异常信息，可以是具体的信息，也可以是对应的异常编码根据系统架构需要，如果是直接在异常抛出
	 * 时指定异常信息，则直接传入异常信息，如果需要根据资源文件中的KEY来确定异常信息，则直接传入异常编码			   
	 * @param params：异常信息的参数值，根据参数的顺序依次存放
	 */
	public SystemException(String message, Object[] params) {
		this(message, params, null);  
	}
	
	/**
	 * 带全部参数的方法，
	 * @param message：异常信息，可以是具体的信息，也可以是对应的异常编码根据系统架构需要，如果是直接在异常抛出
	 * 时指定异常信息，则直接传入异常信息，如果需要根据资源文件中的KEY来确定异常信息，则直接传入异常编码			   
	 * @param params：异常信息的参数值，根据参数的顺序依次存放
	 * @param e
	 */
	public SystemException(String message, Object[] params, Throwable e) {
		super(message, e);
		this.message = message;
		this.params = params;
	}
	
	/**
	 * 取得params的方法
	 * @return the params 
	 */
	public Object[] getParams() {
		return params;
	}

	/**
	 * 设置params的方法
	 * @param params the params to set
	 */
	public void setParams(Object[] params) {
		this.params = params;
	}

	/**
	 * 取得message的方法
	 * @return the message 
	 */
	public String getMessage() {
		return message;
	}

	/**
	 * 设置message的方法
	 * @param message the message to set
	 */
	public void setMessage(String message) {
		this.message = message;
	}
}
